An important aspect of any computer system is the interface between the computer and external devices. In many situations, the various units which work together to form a complete computer system are manufactured by more than one company or organization. The definition of standard interfaces therefore has been an important activity of the computer industry. Many interfaces have been defined by various standards committees. Frequently, these interfaces are in a relatively constant state of improvement.
Two of the important interfaces which have been defined by standards committees and which are in widespread use are:                1) The IDE/ATA interface: IDE stands for “Integrated Device Electronics” and ATA stands for “Advanced Technology attachment”. This interface is often referred to as the ATA interface and the IDE/ATA interface will herein be referred to as the ATA interface.        2) The USB interface: USB stands for “Universal Serial Bus” and it is coming into widespread use.        
The ATA interface is frequently used to connect mass storage devices such as hard disk drives and optical disk drives to personal computers. Several versions of the ATA interface have been defined. The latest standard is the ATA-7 standard which is also referred to as the Ultra-ATA/133 standard. The standards are published on the Internet and a link to them can be found on the web site of the International Committee for Information Technology Standards (INCITS) under the committee “T13 AT storage Interface”, and “T10 SCSI Storage Interface”.
The USB interface was designed to be an easy-to-use interface for personal computers. The USB interface can be used with a wide variety of different types of peripheral devices. The USB interface therefore eliminates the need for multiple I/O standards and it simplifies PC connectivity. There have been a number of versions of the USB standard and the most recent version is designated USB 2.0. The USB interface is described in a document entitled “Universal Serial Bus Revision Specifications 2.0” which is publicly available on the web site of the “USB Implementers Forum” and elsewhere.
A “bridge” is a device which allows two interfaces to communicate with each other. For example, a bridge can be used to interface a USB bus to an ATA bus. With a USB to ATA bridge, one can connect a mass storage device (such as a hard disk drive), which has a native ATA interface to a PC through an external USB bus.
Prior application Ser. No. 10/796,872 describes an improved USB to ATA bridge that eliminates some of the delay inherent in read operations performed by prior art USB to ATA bridges. The present invention provides an improved USB to ATA bride that eliminates some of the delay between successive write commands in prior art USB to ATA bridges.
In prior art USB to ATA bridges, the process to write data on a mass device can, for example, include the following steps:                1) The host issues a command block wrapper (CBW) on the USB bus that includes a write command.        2) The USB-ATA bridge issues an ATA write command to the storage device.        3) The storage device processes the command. This generally involves a delay in the order of 300 to 400 microseconds. During this period the host will be ready to send data, but the data transfer is delayed until the storage device is ready to receive the data.        4) When the storage drive is ready the data is transferred to the storage device.        5) The storage device indicates that the operation has been successful.        6) The host gets the next piece of data which involves a 300 to 400 microsecond delay.        7) The host issues the next CBW with another write command.The present invention is direct to eliminating some of the delay involved when a USB to ATA bridge issues a series of write commands.        